Cómo asignar memoria para un arreglo de punteros a un char en c.
He estado trabajando en un programa en C y me quedé atascado con la asignación de memoria para un arreglo de punteros a char. Necesitaré ordenar este arreglo en el futuro. El arreglo debe almacenar caracteres y luego quiero ordenar estos caracteres en orden alfabético.
“`c
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
typedef struct
{
char collection[50];
} data_col;
int main(int argc, char const *argv[])
{
data_col * array[10] = malloc(sizeof(data_col));
<pre><code>for (size_t i = 0; i < 10; i++)
{
scanf("%c", &array[i]->group);
}
return 0;
</code></pre>
}
“`</stdlib.h></string.h></stdio.h>
davy.ai
Hay algunos problemas con la implementación actual:
char **
en lugar dedata_col *[]
.malloc()
para cada elemento por separado, en lugar de una única asignación para todo el array utilizandosizeof()
.scanf("%s", string)
en lugar de un único caracter utilizandoscanf("%c", &var)
.Aquí tienes un ejemplo de implementación que soluciona estos problemas:
Esta implementación:
char **
y asigna memoria para cada elemento por separado utilizandomalloc()
.scanf("%s", string)
.free()
.</stdlib.h></string.h></stdio.h>