我怀疑在C++中初始化这个:
char** A_Function()
{
char** charList = new char*[2];
charList[0] = "abcde";
charList[1] = "fghij";
return charList;
}
Run Code Online (Sandbox Code Playgroud)
编译此代码时没有问题,但我不确定该行为.
1 - char列表:char*在堆上好吗?2 - charList [n_position]在堆或堆栈上?
我不明白char*[2]真正意味着什么,是不是意味着:它是一个静态数组,它的每个元素都有一个指向char的指针?
如果它是静态的,那么这个数组将在堆栈上分配,所以这个数组是一个巨大的bug制造者?
如果我是对的,如何在堆上分配它?
如果我有这样的功能:
void doSomething(int& aVar)
{
// do something
}
Run Code Online (Sandbox Code Playgroud)
我有这个:
int *aVar = new int;
*aVar = 10;
doSomething(*aVar);
Run Code Online (Sandbox Code Playgroud)
我为什么要打*aVar?是不是aVar已经是一个地址?
java Hashtable元素的hashCode总是唯一的吗?
如果没有,我怎样才能保证一次搜索会给我正确的元素?
在Objective-c中我有这个:
SomeObject *values[3][3];
Run Code Online (Sandbox Code Playgroud)
解除分配时,如在C++中我应该逐个元素地释放吗?
或者如果我这样做:
[values release];
Run Code Online (Sandbox Code Playgroud)
好吗?
我有一个文件:
variableinclude.h
#ifndef _variableinclude_h_
#define _variableinclude_h_
AClass* variable1;
int* variable2;
#endif
Run Code Online (Sandbox Code Playgroud)
但我将此文件包含在另外两个不同的文件中:
- atest1.h
- atest2.h
Run Code Online (Sandbox Code Playgroud)
问题如下:变量重新定义.
怎么避免???
我有这个代码:
char* value = "abcdefg";
char* secondValue = value;
Run Code Online (Sandbox Code Playgroud)
第二个值会得到值的值吗?如果我删除"value",我的第二个值将无法使用吗?
所以我应该这样做:
char* value = "abcdefg";
secondValue = new char[strlen(value)];
strcpy(secondValue, value);
Run Code Online (Sandbox Code Playgroud)
所以如果我删除"价值"没问题.
最后要解除我应该做的第二个值:
delete[] secondValue;
Run Code Online (Sandbox Code Playgroud)
我对吗?
我有一个ascii代码,字母'a',我想通过它的ascii代码得到一个字符串,是否可以使用NSString?
我正在寻找getter/setter的语法.哪个是设定者,哪个是吸气剂?
readwrite属性是getter吗?
分配是设定者吗?
@interface SomeClass : NSObject
{
NSString *str;
NSDate *date;
}
@property (readwrite, assign) NSString *str;
@property (readwrite, assign) NSDate *date;
我有这个结构:
class Base
{
public:
void doACopy(char* strToCopy) {
strcpy(str, strToCopy);
}
private:
char str[4];
};
class Derived : public Base
{
public:
void doSomething() {
char toCopy[4];
toCopy[0] = 'a'; toCopy[1] = 'b'; toCopy[2] = 'c';
Base::doACopy(toCopy); // is there any problem passing toCopy here?
}
};
Run Code Online (Sandbox Code Playgroud)
我知道toCopy是在堆栈上分配的.将此数组传递给super是否有任何问题,在这种情况下是Derived :: doACopy?
我想做一个查询插入:
插入A_TABLE(BLOB_FIELD)值(MY_BLOB_VAL)
但我在exphi中只有字符串值,例如:
procedure INSERT_BLOB_QUERY
var
query:String;
my_blob_val:String;
begin
my_blob_val := 'a blob string to be inserted';
query := 'INSERT INTO A_TABLE (BLOB_FIELD) VALUES(' + my_blob_val + ')';
// to execute a query....
end;
Run Code Online (Sandbox Code Playgroud)
出现的问题是字符串到blob的转换.
那么如何在interbase blob字段中插入一个字符串?