我想知道如何通过函数分配数据,并在返回函数后仍然分配数据.这适用于基本类型(int,char**)和用户定义类型.下面是两个代码片段.虽然在返回分配之后,两者都在函数内具有分配.
int* nCheck = NULL;
int nCount = 4;
CallIntAllocation(nCheck, nCount);
nCheck[1] = 3; // Not allocated!
...
CallIntAllocation(int* nCheck, int nCount)
{
nCheck = (int*)malloc(nCount* sizeof(int));
for (int j = 0; j < nCount; j++)
nCheck[j] = 0;
}
Run Code Online (Sandbox Code Playgroud)
对于用户定义的类型,与之前相同的行为:
typedef struct criteriatype
{
char szCriterio[256];
char szCriterioSpecific[256];
} _CriteriaType;
typedef struct criteria
{
int nCount;
char szType[128];
_CriteriaType* CriteriaType;
} _Criteria;
...
_Criteria* Criteria;
AllocateCriteria(nTypes, nCriteria, Criteria);
...
void AllocateCriteria(int nTypes, int nCriteria[], _Criteria* Criteria)
{
int i …Run Code Online (Sandbox Code Playgroud) 我创建了一个char szMyChar作为输入的函数; (在switch语句中使用它).
现在我有一个CString只有一个字符,让我们说 CString strString = "A";
调用该函数的选项可以是:
if (strString == "A")
CallMyFunc('A');
Run Code Online (Sandbox Code Playgroud)
虽然很笨拙.我尝试了atoi(返回0)并且虽然没有工作但仍然进行投射.
有任何想法吗?
谢谢,孙
可能重复:
将除法结果舍入到c中的下一个整数
是否有一个函数可以舍double入到下一个整数?
1.8 -> 2
1.01 ->2
0.99 ->1
Run Code Online (Sandbox Code Playgroud)