このコードは、より大きなプログラムの一部です。私は構造体の配列を作成したいと思います。構造体には、char
とchar*
という2つのデータ型があり、それぞれがユーザーからの入力を受け取ります。私はルーキーで、これで私の道を見つけることができません。助けてください。文字列を構造体に格納できません
エラーが発生:セグメンテーションフォールト11.
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
typedef struct {
char ch;
char str[20];
}typ;
typ* add(char* str, char ch);
int main(int argc, char const *argv[]){
typ* arr;
arr = (typ*)malloc(sizeof(typ));
char* name;
name = (char*)malloc(10);
*(name + 0)= 'c';
*(name + 1)= 'a';
*(name + 2)= 'p';
*(name + 3)= '\0';
char c = 'k';
arr = add(name, c);
printf("%c\n", arr->ch);
printf("%s\n", arr->str);
return 0;
}
typ* add(char* str, char ch){
typ tempo;
strcpy(str, tempo.str);
printf("%s\n", str);
tempo.ch = ch;
typ* temp;
*temp = tempo;
return temp;
}
OK、新人を。最初のステップ - あなたがコードを読みやすくするためにインデントします。そうでなければdevsです。次の質問に進むだけです。 –
第2ステップ - プログラムをデバッガで実行します。 –
構造体型 'typ'の命名は役に立ちません:( –