在我的代碼文件是結構。如何正確訪問C中的數組成員?
typedef struct {
char name[64];
char filename[64];
long size; // file size
long loaded; // after load of kernel loaded should be same value as size
char * program;
} FILES;
文件是FILES類型的數組。
FILES files[MAX_KERNELS_COUNT];
in function loadKernels我想通過指針訪問數組文件的成員。
bool loadKernels(const char * path, FILES * files, int count)
{
...
size = strlen(files[c].program);
printf("\n%ld\n",size);
size = sizeof(files[c].program);
printf("\n%ld\n",size);
...
}
我有問題那裏的文件[c] .program行。我知道我必須像指針一樣訪問文件,但是如何正確地獲取C字符串的長度?我知道像(*文件)[C]。程序是錯誤的。
你已經在正確地做它,直接後來你做錯了。要獲得一個字符串的長度,你可以使用'strlen'來獲得你使用'sizeof'指針*的大小*(而不是它指向的)。 –
如何獲得'string'的長度與你如何訪問數組無關,函數接收到的是指向數組第一個元素的指針,所以假設'c
所以這是正確的,但我期望得到不同的結果。這就是爲什麼我認爲這是錯誤的:我期望程序的長度爲11000字節。但它只有7個字節。根據Code :: blocks監視工具字符串是:0x4c66b0「\ 177ELF \ 001 \ 001 \ 001」,,,似乎我的功能有一些問題。 – user1141649