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()。 –