簡體   English   中英

C-我可以將char * argv [](命令行aruments)表示為結構變量的字符數組嗎?

[英]C - Can I express char *argv[](command line aruments) as a character array for a struct variable?

我有一個結構,我要從mp3文件讀取的字節中分配一個值

struct foo{
char name[30];  //name I want 
}

我想做的是通過命令行參數從輸入中更改結構變量。 這就是我最初設置struct變量的方式:

int main(int argc, char *argv[]){
struct foo bar;
char *temp = argv[1];

fread(bar.name,1,30,file);//reading bytes from file and setting initial value


}

這是我嘗試更改它們的兩種方法:

bar.name = temp;//   error: incompatible assigning (char[10] from char*)
strcpy(bar.name,temp);//  error: incompatible implicit declaration

這是我在命令行中鍵入的內容:./test new_title

我應該如何將argv表示為char []而不是char? 我會使用get_opt,但被要求不要這樣做。

關於這個問題:

我應該如何將argv表示為char []而不是char? 我會使用get_opt,但被要求不要這樣做。

argv []實際上是char **,因此它不是任何char數組。
而是一個指向char的指針數組。

因此argv不能視為char數組。

一個char數組看起來像這樣:

char myArray[10].

一個char數組的數組看起來像這樣:

char myArray[10][20]

都不符合以下條件:(類似於argv的外觀)

char **myArray[10]
for i=0;i<9;i++
{
    myArray[i] = malloc( 20 );
}

myArray[9] = NULL;

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM