作者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/cn.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