実行するとNumaを表示するプログラムのコードのつもりです。
コンパイルしようとすると
4.c: In function ‘main’:
4.c:18:18: error: invalid type argument of unary ‘*’ (have ‘MyStruct’ {aka ‘struct MyStruct’})
18 | InitMyStruct(*x, *k);
| ^~
4.c:18:22: warning: passing argument 2 of ‘InitMyStruct’ makes pointer from integer without a cast [-Wint-conversion]
18 | InitMyStruct(*x, *k);
| ^~
| |
| char
4.c:6:39: note: expected ‘char *’ but argument is of type ‘char’
6 | void InitMyStruct( MyStruct *x, char s){
|
といったエラーメッセージが表示されます。
恐らくInitMyStruct()内のxに問題があるのだと思うのですが解決方法が分かりません。
解決方法、若しくは助言をいただけないでしょうか。
c
1 2#include <stdio.h> 3 4typedef struct MyStruct{ 5 char s[256]; 6} MyStruct; 7void InitMyStruct( MyStruct *x, char *s){ 8 int i=0; 9 while( s[i] ){ 10 (*x).s[i] = s[i]; 11 i=i+1; 12 } 13 (*x).s[i]='\0'; 14} 15int main(void){ 16 char *k="Numa"; 17 MyStruct x; 18 int i=0; 19 InitMyStruct(*x, *k); 20 while( x.s[i] ){ 21 putchar(x.s[i]); 22 i++; 23 } 24 return 0; 25} 26
回答3件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。