在C中,我试图通过将其发送到函数来设置指针的值,但该值不会在函数外部发生变化.这是我的代码:
#include <stdio.h>
void foo(char* str) {
char* new_str = malloc(100);
memset(new_str, 0, 100);
strcpy(new_str, (char*)"new test");
str = new_str;
}
int main (int argc, char *argv[]) {
char* str = malloc(100);
memset(str, 0, 100);
strcpy(str, (char*)"test");
foo(str);
printf("str = %s\n", str);
}
Run Code Online (Sandbox Code Playgroud)
我要打印出来:
str = new test
Run Code Online (Sandbox Code Playgroud)
但是这段代码打印出来:
str = test
Run Code Online (Sandbox Code Playgroud)
任何帮助将不胜感激.提前致谢.
我正在尝试创建一个字符串双端队列,但是当我向双端队列中添加一个字符串时,它总是将字符串分解为单个字符。到目前为止,这是我的代码:
from collections import deque
my_string = "test"
my_queue = deque(my_string)
print my_queue
Run Code Online (Sandbox Code Playgroud)
我得到的输出是:
deque(['t', 'e', 's', 't'])
Run Code Online (Sandbox Code Playgroud)
我希望输出是:
deque(['test'])
Run Code Online (Sandbox Code Playgroud)
有什么想法吗?
现在,当我输入时,IntelliJ会立即弹出一个包含代码完成建议的方框.然而,这些建议只是"基本",而不像我使用(Ctrl + Shift + Space)快捷方式调用SmartType完成时那样"智能".有没有办法配置IntelliJ在我输入时自动调用SmartType完成?
有时我必须连续多次运行命令,例如查看服务是否已启动,将手移离正常输入位置以反复按向上箭头和输入键变得乏味.有没有办法在没有Up Arrow和Enter键的情况下运行上一个命令,可能还有一个精心设计的shell脚本?
我已经尝试了以下内容,但它不能令人满意,因为它无法执行别名,而且速度有点慢.
history | tail -2 | head -1 | cut -d' ' -f4- | cat > prev_command.txt
sleep .01
chmod 777 prev_command.txt
eval prev_command.txt
rm prev_command.txt
Run Code Online (Sandbox Code Playgroud)
理想情况下,我有一个这个脚本的别名,所以我可以在命令行中键入类似"prev"的内容,然后按Enter键再次运行上一个命令.
我有两个文件,enum_test.py和print_test_file.py. 我在中定义了一个 Enum 类enum_test.py并使用该 Enum 类的成员作为键创建了一个字典。当我尝试在其中使用该词典时,出现print_test_file.py了一个关键错误。
这是代码enum_test.py:
from enum import Enum
import print_test_file
class MyEnum(Enum):
A = 1
B = 2
def main():
enumDict = dict()
enumDict[MyEnum.A] = 'abcd'
enumDict[MyEnum.B] = 'efgh'
print(enumDict[MyEnum.A])
print_test_file.print_test(enumDict)
if __name__ == "__main__":
main()
Run Code Online (Sandbox Code Playgroud)
这是来自的代码 print_test_file.py
import enum_test
def print_test(enumDict):
print(enumDict[enum_test.MyEnum.A])
Run Code Online (Sandbox Code Playgroud)
我期望运行enum_test会产生以下输出:
abcd
abcd
Run Code Online (Sandbox Code Playgroud)
但它只打印第一个abcd然后抛出KeyError: <MyEnum.A: 1>
如何使用我在enum_test.pyfrom 中创建的字典print_test_file.py?
我有一个我用Notepad ++编辑的C文件,并且有一个大约30个连续行的部分,我想用另一个单词替换一个单词.有没有办法只在那个部分使用Notepad ++进行查找/替换?
我想为我上课写一个单元测试.这个类有一个公共方法,在public方法中,在同一个类中调用私有方法.我想模拟对这些私有方法的调用.该类与此类似:
public class SomeClass {
public int somePublicMethod(int num) {
int num2 = somePrivateMethod1(num);
int num3 = somePrivateMethod2(num);
return num2 + num3;
}
private int somePrivateMethod1(int num) {
return 2*num;
}
private int somePrivateMethod2(int num) {
return 3*num;
}
}
Run Code Online (Sandbox Code Playgroud)
对于我的单元测试,我试图将PowerMock与Mockito和TestNG一起使用.这是我尝试测试somePublicMethod的测试:
import static org.powermock.api.mockito.PowerMockito.doReturn;
import static org.powermock.api.mockito.PowerMockito.spy;
import org.powermock.core.classloader.annotations.PrepareForTest;
import org.testng.Assert;
import org.testng.annotations.Test;
@PrepareForTest(SomeClass.class)
public class SomeClassTest {
@Test
public void testSomePublicMethod() throws Exception {
int num = 4;
SomeClass someClassSpy = spy(new SomeClass());
doReturn(8).when(someClassSpy, "somePrivateMethod1", num);
doReturn(12).when(someClassSpy, "somePrivateMethod2", num); …Run Code Online (Sandbox Code Playgroud) 现在我有以下代码:
String[] values = {str1, str2};
Utils.myMethod(values);
Run Code Online (Sandbox Code Playgroud)
我想知道是否有办法在一行中完成所有这些.我试过了:
Utils.myMethod({str1, str2});
Run Code Online (Sandbox Code Playgroud)
但这不起作用.提前致谢.
有时在调试时我在代码中添加了一个额外的变量,这样我就可以在调试器中看到该变量的值.但是,似乎如果在代码中的其他地方没有使用额外变量,则IntelliJ不会在调试器中包含该变量.我已经通过声明一个虚拟变量并设置它等于我想在调试器中看到的变量解决此得到了,因为这样的IntelliJ认为,额外的变量使用.
有没有办法配置IntelliJ以在调试器中显示未使用的变量?