初心者です。C言語のポインタ配列を勉強しているのですが現在のソースコードで間違えている個所を指摘してください。

実現したいこと

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/ツールのバージョンなど)

ここにより詳細な情報を記載してください。

コメントを投稿

0 コメント