无法将char值分配给struct中的指针

时间:2018-10-20 04:04:17

标签: c arrays function pointers struct

我无法按如下所示将值分配给struct中的指针

%<givenName>.%<sn>

这不是完整的代码,但是我的 matrixs.depth 现在是 5 ,并且由于我的编译器结果, printf(“ DONE”)从未显示上,并且值也没有分配给Psedo 变量,我不知道为什么

然后我尝试了

strcpy(matrixs.Psedo [i] [x],'0')

代替

matrixs.Psedo [i] [x] ='0';

然后出现

警告:传递'strcpy'的参数1使指针从整数开始而无需强制转换 [-Wint-conversion]

,以及 printf(“ DONE); 从不显示

1 个答案:

答案 0 :(得分:1)

您需要为Psedo变量分配内存。它是一个指针数组。他们指向哪里?他们没有指向任何有效的内存位置。访问权限为undefined behavior

如果您不需要指针数组,那么也可以简单地使用数组。这将不需要像当前情况那样进行显式分配。 char *Psedo[10];将是char Psedo[10][MAXLEN];

第二个strcpy(matrixs.Psedo[i][x], '0')将是strcpy(matrixs.Psedo[i], "0")。向strcpy提供所需的内容...它期望获得指针。在您先前的情况下,char的整数值被视为指针。这就是警告的原因。这也会导致不确定的行为。