1
这段代码运行时出现了段错误,但编译没有问题。哪里不对?指针结构的问题
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
typedef struct {
char *fld[129];
} isomsg;
void iso8583_init(isomsg *m)
{
int i;
for (i = 0; i <= 128; i++) {
m->fld[i] = NULL;
}
}
isomsg m;
int main(int argc, char *argv[]) {
iso8583_init(&m);
strcpy(m.fld[0],"Fisrt");
printf("First = %s\n",m.fld[0]);
system("PAUSE");
return 0;
}
非常感谢;这解决了我的问题 – user5240895
如果我使用:memcpy(&m.fld [0],“First”,5); – user5240895
@ user5240895 memcpy()是另一种复制方式。但是在任何情况下,您都需要将指针指向有效的内存位置,即您仍然需要对传递给memcpy()的指针执行malloc()。 –