helloeveryone。私はプログラミングにはまだまだ慣れていませんし、現在はどのプロジェクトでもC言語のプログラミングを進めていきたいと考えています。私はmallocとreallocの使い方を学んだだけで、多次元配列から2つの文字列を結合するためにstrcatを使用しようとするまでは、すべてうまく見えました。多次元配列でReallocとstrcatを使用すると文字が欠落していますか?
ユーザーの入力に基づいて2つの文字列の組み合わせを取得するはずです。不思議なことに、最初の文字が欠落しているか、他の文字に置き換えられています... ソースコードと出力。私は本当に助けていただきありがとうございます。前もって感謝します!! (最後に韓国語を気にしない...私は韓国人だ:P)
enter code here
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
int main(void)
{
int i, j;
const int row = 3;
char *pstr[3];
char temp[100];
int k,p = 0;
printf("Type in any three characters\n");
for (i = 0; i < row; i++)
{
pstr[i] = (char *)malloc(strlen(temp) + 1); //initialize the lenght of the elements in 2 part of 2D array of char b[ROW] via length of the given string
}
for (i = 0; i < row; i++)
{
scanf("%s", temp);
strcpy(pstr[i], temp);
}
printf("\n");
for (i = 0; i < row; i++)
{
printf("%s\n", pstr[i]);
}
scanf("%d", &p);
scanf("%d", &k);
printf("%s\n", pstr[p]);
printf("%s\n", pstr[k]);
*pstr[k] = (char *)realloc(pstr[k], strlen(pstr[p])+100);
strcat(pstr[k], pstr[p]);
printf("%s", pstr[k]);
for (i = 0; i < row; i++)
{
free(pstr[i]);
}
return 0;
}
\出力:: LINK IS AN INTERNATIONAL SIGN FOR , IMAGE OVER HERE!!!
コードには多次元配列はありません!ポインタは配列ではありません。 – Olaf
テキストの画像を投稿しないでください! – Olaf
@ tilz0R:リンクを提供してみませんか?しかし、キャストが正当化される理由は、新しい、良い共鳴を持っているかもしれません。 – Olaf