Q&A
実現したいこと
scanfで書き込んだ文字を3回表示させたいです。
現状のソースコードではpstr=%が1回しか表示されないです。
前提
ポインタ配列がよくわからないため勉強している最中です。
現状のコードで間違えている個所を指摘してほしいです。
発生している問題・エラーメッセージ
Warningのみ表示されています。
(16,23): warning C4047: '関数': 間接参照のレベルが 'rsize_t' と 'char [100]' で異なっています。 (16,19): warning C4024: 'strcpy_s': の型が 2 の仮引数および実引数と異なります。 (16,37): warning C4047: '関数': 間接参照のレベルが 'const char *' と 'size_t' で異なっています。 (16,25): warning C4024: 'strcpy_s': の型が 3 の仮引数および実引数と異なります。 (27,16): warning C4047: '関数': 間接参照のレベルが 'char **' と 'char *(*)[3]' で異なっています。 (27,12): warning C4024: 'write_str': の型が 1 の仮引数および実引数と異なります。
該当のソースコード
C
1#include <stdio.h> 2#include <string.h> 3#include <stdlib.h> 4 5int write_str(char **pstr) { 6 int i; 7 char mozi[100]; 8 9 for (i = 0; i < 3; i++) { 10 printf("-----\n"); 11 scanf_s("%s", mozi, 100); 12 *(pstr + i) = (char*)malloc(sizeof(char) * (strlen(mozi) + 1)); 13 strcpy_s(*pstr, mozi, sizeof(mozi)); 14 printf("pstr=%s\n", *pstr); 15 } 16 return 0; 17} 18 19 20int main() 21{ 22 char* str[3]; 23 24 write_str(&str); 25 26 return 0; 27}
試したこと
ループされているか確認したがループされていなかった。
補足情報(FW/ツールのバージョンなど)
ここにより詳細な情報を記載してください。
回答1件
あなたの回答
tips
プレビュー
下記のような回答は推奨されていません。
このような回答には修正を依頼しましょう。
2023/02/18 09:50