#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#define N 3 //кол-во строк
#define M 5 //кол-во символов в строке (4 символа + '\0' для разделения строк в памяти
void print_name(char** array, const int num) {
}
//или так
void print_name_1(char* array, const int num) {
array += M*num;
}
int main()
{
//char* names[3][4];
//выделяем память правильно!
char **names
= (char**) malloc(N
*sizeof(char*) + M
*N
*sizeof(char)); names[0] = (char*) (names + N); //указатель на первый символ
for(size_t i=1; i<N; i++)
names[i] = names[0] + M*i; //смещаем указатель под начало строк
//используем функцию strcpy из <string.h>
print_name(names, 2);
print_name_1(names[0], 0);
free(names
); //освобождаем память одной функцией free
return 0;
}
I2luY2x1ZGUgPHN0ZGlvLmg+CiNpbmNsdWRlIDxzdGRsaWIuaD4KI2luY2x1ZGUgPHN0cmluZy5oPgoKCiNkZWZpbmUgTiAzIC8v0LrQvtC7LdCy0L4g0YHRgtGA0L7QugojZGVmaW5lIE0gNSAvL9C60L7Quy3QstC+INGB0LjQvNCy0L7Qu9C+0LIg0LIg0YHRgtGA0L7QutC1ICg0INGB0LjQvNCy0L7Qu9CwICsgJ1wwJyDQtNC70Y8g0YDQsNC30LTQtdC70LXQvdC40Y8g0YHRgtGA0L7QuiDQsiDQv9Cw0LzRj9GC0LgKCnZvaWQgcHJpbnRfbmFtZShjaGFyKiogYXJyYXksIGNvbnN0IGludCBudW0pIHsKICAgIHByaW50ZigiJXNcbiIsIGFycmF5W251bV0pOwp9CgovL9C40LvQuCDRgtCw0LoKdm9pZCBwcmludF9uYW1lXzEoY2hhciogYXJyYXksIGNvbnN0IGludCBudW0pIHsKCWFycmF5ICs9IE0qbnVtOwogICAgcHJpbnRmKCIlc1xuIiwgYXJyYXkpOwp9CgppbnQgbWFpbigpCnsKICAgIC8vY2hhciogbmFtZXNbM11bNF07CgkvL9Cy0YvQtNC10LvRj9C10Lwg0L/QsNC80Y/RgtGMINC/0YDQsNCy0LjQu9GM0L3QviEKCWNoYXIgKipuYW1lcyA9IChjaGFyKiopIG1hbGxvYyhOKnNpemVvZihjaGFyKikgKyBNKk4qc2l6ZW9mKGNoYXIpKTsKCW5hbWVzWzBdID0gKGNoYXIqKSAobmFtZXMgKyBOKTsJLy/Rg9C60LDQt9Cw0YLQtdC70Ywg0L3QsCDQv9C10YDQstGL0Lkg0YHQuNC80LLQvtC7Cglmb3Ioc2l6ZV90IGk9MTsgaTxOOyBpKyspCgkJbmFtZXNbaV0gPSBuYW1lc1swXSArIE0qaTsJLy/RgdC80LXRidCw0LXQvCDRg9C60LDQt9Cw0YLQtdC70Ywg0L/QvtC0INC90LDRh9Cw0LvQviDRgdGC0YDQvtC6CgkKCS8v0LjRgdC/0L7Qu9GM0LfRg9C10Lwg0YTRg9C90LrRhtC40Y4gc3RyY3B5INC40LcgPHN0cmluZy5oPgogICAgc3RyY3B5KG5hbWVzWzBdLCJrb2xhIik7CiAgICBzdHJjcHkobmFtZXNbMV0sInZhc2EiKTsKICAgIHN0cmNweShuYW1lc1syXSwibWlzYSIpOwoJCgkKICAgIHByaW50X25hbWUobmFtZXMsIDIpOwoJCglwcmludF9uYW1lXzEobmFtZXNbMF0sIDApOwoJCglmcmVlKG5hbWVzKTsJLy/QvtGB0LLQvtCx0L7QttC00LDQtdC8INC/0LDQvNGP0YLRjCDQvtC00L3QvtC5INGE0YPQvdC60YbQuNC10LkgZnJlZQoJCiAgICByZXR1cm4gMDsKfQ==