1. 程式人生 > >c 結構體中存在指標,指標的不同賦值方法

c 結構體中存在指標,指標的不同賦值方法

#include<stdio.h>
#include<stdlib.h>
#include<string.h>
struct parameter{
char *fd;
int hit;
};
int main()

{
struct parameter*pptr = (struct parameter*)malloc(sizeof(struct parameter));
memset(pptr, 0, sizeof(struct parameter));
//pptr->fd = (char*)malloc(sizeof(char) * 10); //新建的指標fd存在於棧中,指向分配在堆中的記憶體。
//memset(pptr->fd, 0, 10 * sizeof(char));

pptr->fd = "agcdgg";//此時,fd在棧中, "agcdgg"也在棧中。因此不需要執行(char*)malloc(sizeof(char) * 10)為fd分配記憶體。
// strcpy(pptr->fd,"agcdgg");//若fd通過pptr->fd = (char*)malloc(sizeof(char) * 10)分配記憶體,則需要通過此種方式給fd指向的記憶體賦值。
pptr->hit = 1;
printf("%s", pptr->fd);
printf("%d", pptr->hit);
//free(pptr->fd);//若fd的賦值是通過pptr->fd = "agcdgg"完成,則不需要執行此行程式碼,


free(pptr);
return 0;
}