cách này mình đã thử, nhưng chỉ đúng với kiểu int, còn uint8_t thì bị lỗi,
#include <stdio.h>
#include <stdlib.h>
#include <stdint.h>
#include <stdbool.h>
void allocate_memory(int *ptr)
{
int *ptr2;
int i;
ptr2 = (int *)calloc(5, sizeof(int));
printf("Nhap cac gia tri:\n");
for (i = 0; i < 5; ++i)
{
printf("phan tu thu %d:", i + 1);
scanf("%d", ptr2 + i);
}
for (i = 0; i < 5; ++i)
{
printf("\ndia chi %x:", ptr2 + i);
}
printf("\ngia tri trong ham 1:%d\n", ptr2);
*ptr = ptr2;
printf("\ngia tri trong ham 1:%d\n", ptr);
}
int main()
{
int *word;
allocate_memory(&word);
printf("gia tri trong ham 1:%d\n", word);
int i;
for (i = 0; i < 5; i++)
{
printf("%d----%x\n", *(word + i), (word + i));
}
free(word);
return 0;
}
#include <stdio.h>
#include <stdlib.h>
#include <stdint.h>
#include <stdbool.h>
void allocate_memory(uint8_t *ptr)
{
uint8_t *ptr2;
uint8_t i;
ptr2 = (uint8_t *)calloc(5, sizeof(uint8_t));
printf("Nhap cac gia tri:\n");
for (i = 0; i < 5; ++i)
{
printf("phan tu thu %d:", i + 1);
scanf("%d", ptr2 + i);
}
for (i = 0; i < 5; ++i)
{
printf("\ndia chi %x:", ptr2 + i);
}
printf("\ngia tri trong ham 1:%d\n", ptr2);
*ptr = ptr2;
printf("\ngia tri trong ham 1:%d\n", ptr);
}
int main()
{
uint8_t *word;
allocate_memory(&word);
printf("gia tri trong ham 1:%d\n", word);
uint8_t i;
for (i = 0; i < 5; i++)
{
printf("%d----%x\n", *(word + i), (word + i));
}
free(word);
return 0;
đổi qua uint8_t thì sai ạ