看板 PLT 關於我們 聯絡資訊
#include <stdio.h> #include <stdlib.h> int main() { int i,j; char k[10]; char **ptr = (char **) malloc(2 * sizeof(char *)); for (i=0;i<3;i++) { ptr[i]=(char *) malloc(3 * sizeof(char)); } //---------------以上適配置二為記憶體-----------------------// for(int i=0;i<2;i++) { for(int j=0;j<3;j++) { fgets(k,1000,stdin); ptr[i][j]=k; printf("ptr[%d][%d] is %s\n", i,j ,k); } } for(int x=0;x<2;x++) { for(int y=0;y<3;y++) { printf("ptr[%d][%d]=%s\n", i , j , ptr[x][y]); } } //回收ptr陣列的第二維記憶體 for (i=0;i<2;i++) { free(ptr[i]); } free(ptr); //回收ptr陣列的第一維記憶體 system("pause"); return 0; } 請問各位強者 我想建立一個\二為動態記憶體陣列,並且用手動方式輸入字串 把字串存入陣列裡面,例如2*3的陣列一共六個格子,我可以手動 輸入六筆資料,但是這個程式哪邊有問題??? 可以幫我改一下嗎??? C:\Users\meakj\Desktop\DEVC++\main.cc [Error] invalid conversion from 'char*' to 'char' [-fpermissive] -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 122.116.220.174 ※ 文章網址: https://www.ptt.cc/bbs/PLT/M.1474766006.A.EE4.html
LPH66: 字串跟字元不一樣, 字串是字元陣列 09/25 09:53
LPH66: 所以若你想開二維字串陣列則需要開三維字元陣列 09/25 09:53
LPH66: 第三維的大小就是你的字串最長長度 09/25 09:54
LPH66: 看你的 fgets 應該就是 1000 09/25 09:54
LPH66: 啊, 要多 1 給 '\0' 所以是 1001 09/25 09:55
suhorng: C/C++ 相關程式撰寫問題請轉到 C_and_CPP 板 09/25 10:07