下記練習問題を解いているのですが、このコードを実行するとランタイムエラーになります。ポインタ*strの部分を配列str[256]にすると正しくコードが実行されます。
なぜポインタを関数に渡すとランタイムエラーになってしまうのでしょうか?
問.文字列sを受け取って、文字cが含まれていれば、そのアドレスを返す関数を作成せよ。
#include <stdio.h> char *str_chr(const char *s, int c){ char *p = NULL; while(*s++){ if (*(s-1) == c){ p = (s-1); break; } } return p; } int main(void){ char *str; int ch = 'c'; printf("文字列を入力\n"); scanf("%s", str); printf("%cはアドレス%pにあります。", ch, str_chr(str, ch)); } ```
回答3件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2019/04/17 06:16
2019/04/17 09:27