我是C的新手,我需要一些处理数组的方法的帮助.来自Java编程,我习惯于说int [] method()
能够返回一个数组.但是,我发现使用C时,必须在返回数组时使用指针.作为一个新的程序员,我真的根本不理解这一点,即使我已经查看了许多论坛.
基本上,我正在尝试编写一个在C中返回char数组的方法.我将使用数组提供方法(让我们称之为returnArray).它将从前一个数组创建一个新数组并返回指向它的指针.我只是需要一些关于如何开始这个以及如何在从数组发出指针后读取指针的帮助.任何解释这个的帮助表示赞赏.
建议的数组返回函数的代码格式
char *returnArray(char array []){
char returned [10];
//methods to pull values from array, interpret them, and then create new array
return &(returned[0]); //is this correct?
}
Run Code Online (Sandbox Code Playgroud)
函数的调用者
int main(){
int i=0;
char array []={1,0,0,0,0,1,1};
char arrayCount=0;
char* returnedArray = returnArray(&arrayCount); ///is this correct?
for (i=0; i<10;i++)
printf(%d, ",", returnedArray[i]); //is this correctly formatted?
}
Run Code Online (Sandbox Code Playgroud)
我还没有测试过这个,因为我的C编译器目前还没有工作,但我想弄明白这一点
我正在尝试使用这些代码行
class Student {
var name: String
var age: Int?
init(name: String) {
self.name = name
}
func description() -> String {
return age != nil ? "\(name) is \(age) years old." : "\(name) hides his age."
}
}
var me = Student(name: "Daniel")
println(me.description())
me.age = 18
println(me.description())
Run Code Online (Sandbox Code Playgroud)
上面的代码产生如下
Daniel hides his age.
Daniel is Optional(18) years old.
Run Code Online (Sandbox Code Playgroud)
我的问题是为什么有可选(18)那里,我怎么能删除可选和只是打印
Daniel is 18 years old.
Run Code Online (Sandbox Code Playgroud) 制作具有诸如的页面的Ruby on Rails应用程序的标准方法是什么?
如果有人有链接或答案而不是仅仅说使用宝石,我会想知道因为我想学习如何使用这种行为制作简单的webapps.
我想用它来掩盖我的密码*
.我使用Linux GCC代码.我知道一个解决方案是使用这样的getch()
功能
#include <conio.h>
int main()
{
char c,password[10];
int i;
while( (c=getch())!= '\n');{
password[i] = c;
printf("*");
i++;
}
return 1;
}
Run Code Online (Sandbox Code Playgroud)
但问题是GCC
不包含conio.h
文件所以getch()
对我来说没用.有没有人有办法解决吗?
在阅读有关C数据结构的书时,我遇到了"内存高效的双重链接列表"这个术语.它只有一行说一个内存有效的双向链表使用比普通双链表更少的内存,但做同样的工作.没有更多的解释,也没有给出任何例子.只是有人认为这是从一本期刊中获取的,而在"Brackets"中则是"Sinha".
在Google上搜索后,我最接近的就是这个.但是,我什么都听不懂.
有人能解释一下C中的内存高效双链表是什么?它与正常的双向链接列表有什么不同?
编辑:好的,我犯了一个严重的错误.看到我上面发布的链接,是文章的第二页.我没有看到有第一页,并认为给出的链接是第一页.文章的第一页实际上给出了解释,但我不认为它是完美的.它只讨论了Memory-Efficient Linked List或XOR Linked List的基本概念.
c memory-efficient xor-linkedlist data-structures mem.-efficient-linkedlist
我使用默认的Android模拟器来运行本机应用程序,我需要经常重新加载应用程序,我该怎么做?
如何设置genymotion设置为应用程序运行的默认模拟器?
请问有人请告诉我这段代码我做错了什么?无论如何,它只是打印'计数'.我只想要一个非常简单的素数发生器(没什么特别的).
import math
def main():
count = 3
one = 1
while one == 1:
for x in range(2, int(math.sqrt(count) + 1)):
if count % x == 0:
continue
if count % x != 0:
print count
count += 1
Run Code Online (Sandbox Code Playgroud) 我使用枚举来存储像这样的字符串值:
enum Animals: String {
case descCat = "I has attitude"
case descDog = "how can I help"
case descGator = "I will eat you"
var s: String {
get {
return self.rawValue as String
}
}
}
Run Code Online (Sandbox Code Playgroud)
然后我像这样访问它们:
print("Dogs be like:" + Animals.descDog.s)
Run Code Online (Sandbox Code Playgroud)
我的问题是我可以像任何其他结构或对象一样扩展枚举,所以我不必将var s: String {}
属性添加到每个枚举?
我去了一个采访中,我被问到这个问题:
您对以下内容有何看法?
Run Code Online (Sandbox Code Playgroud)int i; scanf ("%d", i); printf ("i: %d\n", i);
我回答了:
我做出的回应是错误的.我不堪重负.
在那之后他们解雇了我:
在某些情况下,程序会崩溃并导致核心转储.
我不明白为什么程序会崩溃?谁有人解释我的原因?任何帮助赞赏.
如何使用我下载的CLang的预编译二进制文件在Ubuntu上安装CLang?
以下是我下载CLang的方法:"LLVM下载页面" - >"下载LLVM 3.2" - >"Ubuntu-12.04/x86_64的Clang二进制文件"(http://llvm.org/releases/3.2/clang+llvm-3.2-x86_64 -linux-ubuntu-12.04.tar.gz.)
然后,我将存档扩展到我的Ubuntu 12.04 LTS 64位计算机上的文件夹中.展开文件夹的内容如下所示:
$ ls clang+llvm-3.2-x86_64-linux-ubuntu-12.04
bin docs include lib share
Run Code Online (Sandbox Code Playgroud)
问题:接下来我该怎么办?我是否必须自己将这些复制到一些文件夹中,如果是这样,那究竟是哪些?我在网上找到的大多数说明都是从源代码构建CLang,这里不适用.
我是大多数这些工具的新手.我创建了一个基本的hello-world C++程序,并且能够使用GCC和autotools编译和运行它.现在,我想用CLang编译相同的程序.