2015-02-11 83 views
-1

如果我嘗試從main(如圖所示)打印出來,我會得到一堆奇怪的符號。如果我嘗試從func打印,我會得到「分段錯誤」。C:用指針作爲參數改變一個帶有void函數的char數組的值

我也有警告:警告:賦值時將指針整數,未作鑄造

這是一個任務的一部分,所以不能改變主(這是在另一個文件中,幷包括用於FUNC原型)

編輯:我明白了。使用「,而不是」這是我的問題,我一直繼續這樣做

#include <stdio.h> 

int main(void) 
{ 
    char s[33]; 
    void func(char *s); 

     func(s); 
     printf("%s\n", s); 
     return 0; 
} 

void func (char *s){ 

s[0]="b"; 
s[1]="o"; 
s[2]="p"; 

} 
+0

恩,這甚至沒有編譯。 – 2015-02-11 05:26:53

回答

0

錯誤1:。你想指定字符數組,而不是字符使用單引號指定字符
錯誤2:功能在不所謂主
錯誤3內:你已聲明的字符數組作爲「海峽」,但後來你指爲「S」

0

假設這是你打算做什麼: 用單引號字符分配給char array和null終止字符串。

#include <stdio.h> 

void func(char *s); 
int main(void) 
{ 
    char str[33]; 

     func(str); 
     printf("%s\n", str); 
} 

void func (char *s){ 

s[0]='b'; 
s[1]='o'; 
s[2]='p'; 
s[3] = '\0'; 

} 
相關問題