Bonjour tout le monde. Je suis relativement nouveau à la programmation et j'essaie actuellement d'apprendre la programmation en langage C pour progresser dans l'un de mes projets. Je viens d'apprendre comment utiliser malloc et realloc, et tout semblait bien jusqu'à ce que j'essaie d'utiliser strcat pour combiner deux chaînes données d'un tableau multidimensionnel.caractère manquant lors de l'utilisation de Realloc et strcat sur un tableau multidimensionnel?
Je suis censé obtenir une combinaison de deux chaînes basées sur les entrées de l'utilisateur, et étrangement, le premier caractère est soit manquant ou remplacé par d'autres caractères ... Je vais inclure le code source ainsi que la sortie ci-dessous . J'apprécierais vraiment votre aide. Merci d'avance!! (Ne me dérange pas le sud-coréen à la fin ... Je suis coréen: 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;
}
\ sortie :: LINK IS AN INTERNATIONAL SIGN FOR , IMAGE OVER HERE!!!
Il n'y a pas de tableau multidimensionnel dans votre code! Un pointeur n'est pas un tableau. – Olaf
Et ne postez pas d'images de texte! – Olaf
@ tilz0R: Pourquoi ne pas simplement fournir le lien? Mais vous pourriez avoir une nouvelle, bonne résonance pourquoi la distribution est justifiée. – Olaf