Bonjour à tous,
Je cherche à créer une fonction d'initialisation d'un tableau à deux dimensions de char*. Le prototype de la fonction est le suivant :
Et son utilisation dans un programme se ferait ainsi :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 void init_array(char** my_array, /* Pointeur vers le tableau à initialiser */ int nb_of_lines, /* Nombre de lignes du tableau */ int nb_of_rows, /* Nombre de colonnes du tableau */ int size_of_pointer, /* Nombre d'octets pour la taille du pointeur */ char* init_char /* Caractère d'initialisation */ );
Cependant à la compilation (Microsoft Visual C++ 2008), on me renvoie une erreur sur la ligne :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34 #include <stdio.h> #include <stdlib.h> #include <tchar.h> #include <string.h> #define NB_OF_LINES 10 #define NB_OF_ROWS 20 #define SIZE_MAX_FUNCTION_NAME 5 void init_array(char** my_array, int nb_of_lines, int nb_of_rows, int size_of_pointer, char* init_char); int main (void) { char *tableau[NB_OF_LINES][NB_OF_ROWS]; init_array(*tableau,NB_OF_LINES,NB_OF_ROWS,SIZE_MAX_FUNCTION_NAME,"*"); return 1; } void init_array(char** my_array, int nb_of_lines, int nb_of_rows, int size_of_pointer, char* init_char) { int temp_index_i = 0; int temp_index_j = 0; for(temp_index_i=0;temp_index_i<nb_of_lines;temp_index_i++) { for(temp_index_j=0;temp_index_j<nb_of_rows;temp_index_j++) { my_array[temp_index_i][temp_index_j] = (char*)malloc(size_of_pointer*sizeof(char)); memcpy(&my_array[temp_index_i][temp_index_j],init_char,size_of_pointer); } } }
disant error C2440: '=' : cannot convert from 'char *' to 'char'.
Code : Sélectionner tout - Visualiser dans une fenêtre à part my_array[temp_index_i][temp_index_j] = (char*)malloc(size_of_pointer*sizeof(char));
Je comprends ce qu'il me dit mais je ne vois pas en quoi ce que je fais est une erreur et surtout comment le résoudre. Une solution pour m'aider à initialiser mes pointeurs s'il vous plait ?
Merci d'avance !![]()
Partager