Skip to content

ami-93/alx-low_level_programming

Repository files navigation

##C - malloc, free

####TASKS

####0. Float like a butterfly, sting like a bee

  • Write a function that creates an array of chars, and initializes it with a specific char.

  • Prototype: char *create_array(unsigned int size, char c);

  • Returns NULL if size = 0

  • Returns a pointer to the array, or NULL if it fails

####1. The woman who has no imagination has no wings

  • Write a function that returns a pointer to a newly allocated space in memory, which contains a copy of the string given as a parameter.

  • Prototype: char *_strdup(char *str);

  • The _strdup() function returns a pointer to a new string which is a duplicate of the string str. Memory for the new string is obtained with malloc, and can be freed with free.

  • Returns NULL if str = NULL

  • On success, the _strdup function returns a pointer to the duplicated string. It returns NULL if insufficient memory was available

  • Write a function that concatenates two strings.

  • Prototype: char str_concat(char s1, char s2);

  • The returned pointer should point to a newly allocated space in memory which contains the contents of s1, followed by the contents of s2, and null terminated if NULL is passed, treat it as an empty string

  • The function should return NULL on failure

####3. If you even dream of beating me you'd better wake up and apologize

  • Write a function that returns a pointer to a 2 dimensional array of integers.

  • Prototype: int **alloc_grid(int width, int height);

  • Each element of the grid should be initialized to 0

  • The function should return NULL on failure

  • If width or height is 0 or negative, return NULL

####4. It's not bragging if you can back it up

Write a function that frees a 2 dimensional grid previously created by your alloc_grid function.

Prototype: void free_grid(int **grid, int height); Note that we will compile with your alloc-grid.c file. Make sure it compiles.

####5. It isn't the mountains ahead to climb that wear you out; it's the pebble in your shoe

  • Write a function that concatenates all the arguments of your program.

  • Prototype: char *argstostr(int ac, char **av);

  • Returns NULL if ac == 0 or av == NULL

  • Returns a pointer to a new string, or NULL if it fails

  • Each argument should be followed by a \n in the new string

####[6. I will show you how great I am] (101-strtow.c)

  • Write a function that splits a string into words.

  • Prototype: char **strtow(char *str);

  • The function returns a pointer to an array of strings (words)

  • Each element of this array should contain a single word, null-terminated

  • The last element of the returned array should be NULL

  • Words are separated by spaces

  • Returns NULL if str == NULL or str == ""

  • If your function fails, it should return NULL

About

alx-low_level_programming

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published