作者hunkchen2000 (我沒錢)
看板PLT
標題[問題]請問C語言的二為動態陣列字串輸入
時間Sun Sep 25 09:13:24 2016
#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://webptt.com/m.aspx?n=bbs/PLT/M.1474766006.A.EE4.html
1F:推 LPH66: 字串跟字元不一樣, 字串是字元陣列 09/25 09:53
2F:→ LPH66: 所以若你想開二維字串陣列則需要開三維字元陣列 09/25 09:53
3F:→ LPH66: 第三維的大小就是你的字串最長長度 09/25 09:54
4F:→ LPH66: 看你的 fgets 應該就是 1000 09/25 09:54
5F:→ LPH66: 啊, 要多 1 給 '\0' 所以是 1001 09/25 09:55
6F:推 suhorng: C/C++ 相關程式撰寫問題請轉到 C_and_CPP 板 09/25 10:07