途中で落ちる理由が知りたいです。
Posted: 2020年8月01日(土) 02:34
#include <stdio.h>
#include <stdint.h>
#include <stdlib.h>
typedef struct{
int d0;
int d1;
int d2;
int d3;
}data_t;
data_t func(data_t* pData,int i){
//pData = malloc(sizeof(data_t));
pData[i].d0 = 19;
pData[i].d1 = 19;
pData[i].d2 = 19;
pData[i].d3 = 19;
printf("%d:d0=%d d1=%d d2=%d d3=%d p=%p\n",i, pData[i].d0, pData[i].d1, pData[i].d2, pData[i].d3, pData);
return *pData;
}
int main(){
//data_t data;
data_t* pData;
data_t* p = pData;
for(int i=0;i<10;i++){
pData = (data_t*)malloc(sizeof(data_t));
pData[i].d0 = 33;
pData[i].d1 = 33;
pData[i].d2 = 33;
pData[i].d3 = 33;
printf("========================\n");
printf("%d:d0=%d d1=%d d2=%d d3=%d p=%p\n",i, pData[i].d0, pData[i].d1, pData[i].d2, pData[i].d3, pData);
*pData = func(pData,i);
printf("%d:d0=%d d1=%d d2=%d d3=%d p=%p\n",i, pData[i].d0, pData[i].d1, pData[i].d2, pData[i].d3, pData);
}
printf("========================\n");
printf("========================\n");
for(int i=0;i<10;i++){
printf("d0=%d d1=%d d2=%d d3=%d p=%p\n", (pData+i)->d0, pData[i].d1, pData[i].d2, pData[i].d3, pData[i]);
}
free(pData);
return 0;
}