#include <stdio.h>
#include <stdlib.h>
#include <string.h>
typedef struct
{
char* location;
int temp;
int numberOfRec;
}TEMP;
// Your wrapper functions
void *xCalloc(size_t numElements, size_t sizeofElement)
{
return calloc(numElements
, sizeofElement
); }
void *xRealloc(void *ptr, size_t newSize)
{
}
void someFunction(TEMP* data)
{
void *temp;
temp = xRealloc (data->location, 10 * sizeof(char));
if(temp == NULL)
{
// Ran out of memory
}
data->location = temp;
strncpy(data
->location
, "Hello", 6); // 6 = 5 + 1 (for NULL terminator) }
int main(void)
{
TEMP* data = xCalloc (1, sizeof(TEMP));
data->location = xCalloc (20, sizeof(char));
someFunction(data);
if(data->location != NULL)
if(data != NULL)
return 0;
}
I2luY2x1ZGUgPHN0ZGlvLmg+CiNpbmNsdWRlIDxzdGRsaWIuaD4KI2luY2x1ZGUgPHN0cmluZy5oPgogCnR5cGVkZWYgc3RydWN0CnsKICAgIGNoYXIqIGxvY2F0aW9uOwogICAgaW50IHRlbXA7CiAgICBpbnQgbnVtYmVyT2ZSZWM7Cn1URU1QOwogCi8vIFlvdXIgd3JhcHBlciBmdW5jdGlvbnMKdm9pZCAqeENhbGxvYyhzaXplX3QgbnVtRWxlbWVudHMsIHNpemVfdCBzaXplb2ZFbGVtZW50KQp7CiAgICByZXR1cm4gY2FsbG9jKG51bUVsZW1lbnRzLCBzaXplb2ZFbGVtZW50KTsKfQogCnZvaWQgKnhSZWFsbG9jKHZvaWQgKnB0ciwgc2l6ZV90IG5ld1NpemUpCnsKICAgIHJldHVybiByZWFsbG9jKHB0ciwgbmV3U2l6ZSk7Cn0KIAp2b2lkIHNvbWVGdW5jdGlvbihURU1QKiBkYXRhKQp7CiAgICB2b2lkICp0ZW1wOwogICAgdGVtcCA9IHhSZWFsbG9jIChkYXRhLT5sb2NhdGlvbiwgMTAgKiBzaXplb2YoY2hhcikpOwogICAgaWYodGVtcCA9PSBOVUxMKQogICAgewogICAgICAgIC8vIFJhbiBvdXQgb2YgbWVtb3J5CiAgICAgICAgZXhpdChFWElUX0ZBSUxVUkUpOwogICAgfQogICAgCiAgICBkYXRhLT5sb2NhdGlvbiA9IHRlbXA7CiAgICBzdHJuY3B5KGRhdGEtPmxvY2F0aW9uLCAiSGVsbG8iLCA2KTsgLy8gNiA9IDUgKyAxIChmb3IgTlVMTCB0ZXJtaW5hdG9yKQp9CiAKaW50IG1haW4odm9pZCkKewogICAgVEVNUCogZGF0YSA9IHhDYWxsb2MgKDEsIHNpemVvZihURU1QKSk7CiAgICBkYXRhLT5sb2NhdGlvbiA9IHhDYWxsb2MgKDIwLCBzaXplb2YoY2hhcikpOwogICAgcHJpbnRmKCJCZWZvcmUgcmVhbGxvYzogJWRcbiIsIHN0cmxlbihkYXRhLT5sb2NhdGlvbikpOwogICAgc29tZUZ1bmN0aW9uKGRhdGEpOwogICAgcHJpbnRmKCJBZnRlciByZWFsbG9jOiAlZFxuIiwgc3RybGVuKGRhdGEtPmxvY2F0aW9uKSk7CiAgICAKICAgIGlmKGRhdGEtPmxvY2F0aW9uICE9IE5VTEwpCiAgICAgICAgZnJlZShkYXRhLT5sb2NhdGlvbik7CiAgICBpZihkYXRhICE9IE5VTEwpCiAgICAgICAgZnJlZShkYXRhKTsKICAgIHJldHVybiAwOwp9