[問題]請問C語言的二為動態陣列字串輸入

看板PLT (程式語言與理論)作者 (我沒錢)時間8年前 (2016/09/25 09:13), 編輯推噓2(204)
留言6則, 2人參與, 最新討論串1/1
#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

09/25 09:53, , 1F
字串跟字元不一樣, 字串是字元陣列
09/25 09:53, 1F

09/25 09:53, , 2F
所以若你想開二維字串陣列則需要開三維字元陣列
09/25 09:53, 2F

09/25 09:54, , 3F
第三維的大小就是你的字串最長長度
09/25 09:54, 3F

09/25 09:54, , 4F
看你的 fgets 應該就是 1000
09/25 09:54, 4F

09/25 09:55, , 5F
啊, 要多 1 給 '\0' 所以是 1001
09/25 09:55, 5F

09/25 10:07, , 6F
C/C++ 相關程式撰寫問題請轉到 C_and_CPP 板
09/25 10:07, 6F
文章代碼(AID): #1NvoIsxa (PLT)
文章代碼(AID): #1NvoIsxa (PLT)