S1E24 指针和二维数组课后题动动手0的报错
本帖最后由 yexing 于 2020-4-4 16:36 编辑原题:
我的代码:
#include <stdio.h>
#define MAX 1024
int main()
{
char input; //用于获取用户输入的字符串
char str;
char ch;
char *pstr = str, *target = input;
int i, j, temp;
for (i = 0; (ch = getchar()) != '\n'; i++)
{
input = ch;
}
temp = 0;
for (i = 0; i < 3; i++)
{
for (j = 0; j < 3; j++)
{
*(*(pstr+i)+j) = *(target+temp);
temp++;
}
}
for (i = 0; i < 3; i++)
{
for (j = 0; j < 3; j++)
{
printf("%c ", **(pstr+i)+j)
}
printf("\n");
}
return 0;
}
报错提示:
注:第23行标红
请问怎么解决报错呢?代码刚刚编写,还未编译测试,如果还有bug,也请大佬指出来{:10_303:} 本帖最后由 qiuyouzhi 于 2020-4-4 16:29 编辑
32行没分号,而且那个p是哪里来的?
qiuyouzhi 发表于 2020-4-4 16:27
32行没分号,而且那个p是哪里来的?
不好意思,是 pstr ,改过来了 qiuyouzhi 发表于 2020-4-4 16:27
32行没分号,而且那个p是哪里来的?
把一些低级错误改了,{:10_262:}剩下23行标红应该怎么解决? **(pstr+i)+j = *(target+temp); ===>>>*(*(pstr+i)+j) = *(target+temp); chxchxkkk 发表于 2020-4-4 16:33
**(pstr+i)+j = *(target+temp); ===>>>*(*(pstr+i)+j) = *(target+temp);
还是报错标红{:10_262:} *(*(pstr+i)+j) = *(target+temp);
左边这是数组指针的写法,而你定义的仅仅是一个普通的指针而已。
应该写成*(pstr+i*3+j) = *(target+temp);
32行的printf内也应该这样写
页:
[1]