int* asciiCode(char c1, char c2){
static int asciiCode[126];
/code/
/code/
return asciiCode;
}
在这ç§æƒ…况下,我å¯ä»¥ä½¿ç”¨allocate而ä¸æ˜¯static intå—?我ä¸ç¡®åˆ‡çŸ¥é“上é¢æŒ‡é’ˆæ•°ç»„çš„å…ƒç´ æ•°é‡ï¼Ÿå¦‚果是,我该怎么åšï¼Ÿ
ç”案 0 :(得分:0)
 Â在这ç§æƒ…况下我å¯ä»¥ä½¿ç”¨allocate而ä¸æ˜¯static intå—?
是的,åªè¦ä¸€äº›ä¾‹ç¨‹ä¹Ÿfree()
分é…内å˜ã€‚
 Â我ä¸ç¡®åˆ‡çŸ¥é“上é¢æŒ‡é’ˆæ•°ç»„çš„å…ƒç´ æ•°é‡ï¼Ÿ
代ç ä¸æ²¡æœ‰æŒ‡é’ˆæ•°ç»„ã€‚å¦‚æžœä½ çš„æ„æ€æ˜¯int
数组,那么项目的数é‡ä¼¼ä¹Žæ˜¯126.这看起æ¥å¾ˆå¥‡æ€ªï¼Œæ—§çš„7ä½ASCII有128个符å·ï¼Œè€Œä¸æ˜¯126个。
 Â如果是,我该怎么åšï¼Ÿ
使用malloc
然åŽè¿”回一个指针。
ç”案 1 :(得分:0)
这是一个您å¯èƒ½ä¼šè§‰å¾—有用的示例。 array
被分é…并在åŽç»è°ƒç”¨ä¸ä½¿ç”¨ï¼Œä»¥ä¾¿æ¨¡æ‹Ÿä½¿ç”¨é™æ€æ•°ç»„æ¥ä¿å˜è°ƒç”¨ä¹‹é—´çš„值。
#include <stdio.h>
#include <stdlib.h>
int* asciiCode(char c1, char c2, int *asciiCodeArr, int size ){
int static counter = 0;
if(asciiCodeArr==NULL)
{
asciiCodeArr = (int *) malloc( sizeof(int)* size);
if(!asciiCodeArr) return NULL;
}
printf("c1=%c ",c1);
printf("c2=%c ",c2);
asciiCodeArr[counter] = c1;
counter = counter + 1;
asciiCodeArr[counter] = c2;
counter = counter + 1;
return (asciiCodeArr);
}
int main(void) {
int i;
int *array=NULL;
int size = 128; // To Hold 128 - 7bits Standard ASCII characters
array = asciiCode('1', '2', array, size);
if(!array){
printf("allocation error!\n");
return -1;
}
// array =
asciiCode('3', '4', array, size);
printf("\narray content in hex: ");
for(i=0;i<4;i++)
{
printf("%X ", array[i]);
}
free(array);
return 0;
}
输出:
c1=1 c2=2 c1=3 c2=4
array content in hex: 31 32 33 34