How to dynamically create a 2d array of strings in C

1 Answer

0 votes
#include <stdio.h>
#include <string.h>
#include <stdlib.h>

#define SIZE 5
#define LEN 6

int main(void)
{
	char** array2d = malloc(SIZE * sizeof(char*));

	for (size_t i = 0; i < SIZE; i++) {
		array2d[i] = malloc(LEN * sizeof(char));
	}

	for (size_t i = 0; i < SIZE; i++) {
		strcpy(array2d[i], "abcde");
	}

	for (size_t i = 0; i < SIZE; i++) {
		puts(array2d[i]);
	}

	for (size_t i = 0; i < SIZE; i++){
		free(array2d[i]);
	}

	free(array2d);

	return 0;
}





/*
run:
 
abcde
abcde
abcde
abcde
abcde
 
*/

 



answered Nov 17, 2022 by avibootz
...