0
我有以下代碼:在C傳遞不同結構類型的功能
typedef struct PStruct{
int len;
char* data;
}PointerStruct;
typedef struct AStruct{
int len;
char data[256];
}ArrayStruct;
void checkFunc(PointerStruct* myData)
{
if (0 == myData || 0 == myData->data){
printf("error\n");
}
}
int main()
{
ArrayStruct my_data;
my_data.len = 256;
char data[] = "data is sent";
my_data.data = &data;
checkFunc((PointerStruct*)my_data);
return 0;
}
是否有任何錯誤的傳遞結構,其具有陣列。所需的是指針。 請讓我知道。
'char []'是一種'char *'。在一種情況下,大小在編譯時已知,而另一種情況則不是。你可以在技術上只使用'PointerStruct',因爲兩者都提供了'len'。 – 2013-03-21 14:51:42