我当前正在尝试将字符串复制到void指针。 这是我正在使用的void指针的结构。
typedef struct
{
struct runtime_type *runtimeTypeHead; /* Array of Runtime Types */
ST_INT numRuntimeTypes; /* # of Runtime Types in array */
ST_CHAR *dataBuf; /* ptr to local data */
ST_VOID *userInfo; /* To store anything user wants.*/
/* GSE code does not use it. */
} GSE_IEC_DATA_ENTRY;
正如您所见,我正在使用userInfo。
我已经分配了内存并使用了memcpy,如下面的代码所示。
DataEntry->userInfo = safe_malloc(sizeof(ST_CHAR)*strlen(ps8tmp+1));
memcpy((ST_CHAR*)DataEntry->userInfo,ps8tmp,strlen(ps8tmp));
我认为将字符串复制到void指针时没有遇到内存问题。 然后,当我尝试按以下方式打印复制的字符串时出现段错误。
printf("Updated DataEntry : %s\n",*(ST_CHAR*) DataEntry->userInfo);
有人能指出为什么我只打印字符串时会出现段错误吗?