由於我一直在教導自己如何在過去的幾個月裏用C語言編程,所以我仍然是一名業餘愛好者,有時我會遇到同時嘗試一個簡單的任務。在這種情況下,我無法確定如何詢問數據是否已寫入結構中的變量。如何確定數據是否已寫入結構中的變量
目前,我已經繞過了這一點,初始化一個整數爲零,將增加到一個真如果語句結果,然後問如果它是零或一。我相信編程界對此深表不滿。這裏有一些代碼不能編譯,因爲比較指針(NULL)和結構中的變量不兼容。有人可以告訴我怎樣才能正確地做到這一點?提前致謝!!
#include <stdlib.h>
#include <stdio.h>
typedef struct alpha
{
int coordinates[3];
} alpha;
typedef struct nulltest
{
struct alpha *a;
} nulltest;
void assign(struct nulltest *nt)
{
int n, m=20, x=0, y=1, z=2;
nt->a=malloc(m*sizeof(struct alpha));
for(n=0; n<m; n++){
nt->a[n].coordinates[0]=x;
nt->a[n].coordinates[1]=y;
nt->a[n].coordinates[2]=z;
x++;
y++;
z++;
if(nt->a[n].coordinates[0]==NULL){
printf("OH NO! No data!");
break;
}
else printf("Great! Data assigned!");
}
}
int main()
{
struct nulltest nt;
assign(&nt);
return 1;
}
謝謝!你已經說清楚了,但讓我問你最後一點。我以前考慮過的一件事實際上是爲我的結構添加一個標誌。我被告知我需要使用類而不是結構,或者創建一個可以做到這一點的函數。然而,我想保持效率。將一些char標誌添加到結構中是否很簡單,該結構將指示結構的已分配內存是否已被訪問? – 2014-09-29 15:32:47
@MikeM:在C中沒有類。如果您的代碼管理所有結構的訪問權限,那麼是的,這很簡單。 – alk 2014-09-30 11:47:10